//1. 设备判断封装函数：判断是移动端或pc端------------------------------------------------------------
function IsPC() {
    var userAgentInfo = navigator.userAgent;
    var Agents = ["Android", "iPhone",
        "SymbianOS", "Windows Phone"
    ];
    var flag = true;
    for (var v = 0; v < Agents.length; v++) {
        if (userAgentInfo.indexOf(Agents[v]) > 0) {
            flag = false;
            break;
        }
    }
    return flag;
};




//2. 自己封装了滑动函数封装slide:适用格式：-----------------------------------------------------------
// <li>
//     <div>
//     </div>
//     <div>
//     </div>
// </li >
//第一个div内为初始内容
//第二个div内存放操作的按钮，且为相对父元素li定位，定位设置left值
//效果：滑动li，左滑滑出第二个div；右滑删除该li
//形参obj：要绑定事件的li
function slide(obj, fn) {
    let startX = 0;
    let x = 0;
    let moveX = 0;
    let flag = true;
    let flag_li = false;
    //手指触摸时获取手指坐标
    obj.addEventListener('touchstart', function(e) {
            startX = e.targetTouches[0].pageX;
            x = obj.offsetLeft;
            if (startX < document.body.clientWidth - obj.children[1].offsetWidth) {
                flag_li = true;
            }
        })
        // 手指移动时 li跟随移动
    obj.addEventListener('touchmove', function(e) {
            if (flag) {
                moveX = e.targetTouches[0].pageX - startX;
                // console.log(obj.offsetLeft);
                obj.style.left = x + moveX + 'px';
                // e.preventDefault();
            }

        })
        // 手指离开时 判断手指移动距离：①如果左移动超过operation盒子的一半，则展示全部；否则还原。
        // 在展示全部的情况下，点击操作按钮执行操作，点击左侧其余地方复原
        // ②右移超过屏幕宽度一半，则删除li
    obj.addEventListener('touchend', function(e) {
        if (moveX < -(obj.children[1].offsetWidth / 2)) { //判断如果左滑超过operation盒子的一半
            obj.style.left = -obj.children[1].offsetWidth + 'px'; //展示全部operation
            flag = false; //将控制位置为错，此时不能进行滑动该li

        } else if (moveX > document.body.clientWidth / 2) { //判断如果右滑超过屏幕的一半，则删除该li 
            obj.parentNode.removeChild(obj);
            fn = fn || function() {};
            fn();
        } else if (flag_li) { // 在li全部展示的情况下，点击该li除operation外的地方
            obj.style.left = 0 + 'px'; //复原该li
            flag_li = false; //点击事件取消
            flag = true; //li可滑动
        } else if (flag) {
            obj.style.left = 0 + 'px'; //若左滑或右滑未达到全部展示或删除li的条件，则复原li
        }
        startX = 0; //每完成一次滑动事件，初始数值归零
        x = 0;
        moveX = 0;



    })
}


// 3.封装填写节点数与总节点数之比函数：-------------------------------------------------------------------
function percentage([obj1, obj2, obj3 = ''], obj) {
    // var n = 0;
    // for (let i = 0; i < arguments.length - 1; i++) {
    //     n += arguments[i].length;
    // }
    // var a = arguments[0].length;
    // 
    // arguments[length - 1].innerHTML = s;
    // return a + "/" + b;
    var n = obj1.length + obj2.length + obj3.length;
    var a = obj1.length;
    s = a + "/" + n;
    obj.innerHTML = s;
}